package com.gimi.cloud.bbp.manage.service.sys;

import com.gimi.cloud.bbp.dto.sys.SysMenuDTO;
import com.gimi.cloud.bbp.dto.sys.SysRoleDTO;
import com.gimi.cloud.bbp.dto.params.MenuSingleParams;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * Created by wangwei on 2017/12/15.
 */
public interface MenuService {

    /**
     * 获取菜单列表
     * @return 所有未删除的菜单
     */
    List<SysMenuDTO> getMenuList();

    SysMenuDTO getMenuSingle(MenuSingleParams params);

    /**
     * 获取某个角色的菜单列表
     * @param roleId 角色id
     * @return 菜单列表
     */
    List<SysMenuDTO> getMenuListByRoleId(Integer roleId);

    /**
     * 根据父类id获取系统菜单列表
     * @param menuDTO
     * @return
     */
    List<SysMenuDTO> getMenuListByPid(SysMenuDTO menuDTO);

    /**
     * 获取菜单树
     * @param allList 总list
     * @param authList 有权限的list
     * @return
     */
    List<SysMenuDTO> getMenuTree(List<SysMenuDTO> allList,List<SysMenuDTO> authList);

    /**
     * 菜单添加
     * @param menuDTO
     * @return
     */
    Boolean menuAdd(SysMenuDTO menuDTO);

    /**
     * 菜单新增
     * @param menuDTO
     * @return
     */
    Boolean menuUpdate(SysMenuDTO menuDTO);

    /**
     * 菜单删除
     * @param meId
     * @return
     */
    Boolean menuDelete(SysMenuDTO meId);

    /**
     * 把list改成树形结构
     */
    List<SysMenuDTO> sortMenu(List<SysMenuDTO> rootMenu);

}
